package com.uva.dbcs.gestionDeFacturas.despliegue.impl;

import java.util.Calendar;
import java.util.Date;
import java.util.List;

import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebService;

import com.uva.dbcs.gestionDeFacturas.despliegue.GestorDeFacturasLocal;
import com.uva.dbcs.gestionDeFacturas.dominio.Factura;
import com.uva.dbcs.gestionDeFacturas.persistencia.FacturaDAO;

@Stateless
@WebService
public class GestorDeFacturas implements GestorDeFacturasLocal {

	@EJB
	private FacturaDAO facturaDAO;

	public GestorDeFacturas() {
	}

	@Override
	@WebMethod
	public List<Factura> getFacturas() {

		return facturaDAO.findAll();
	}

	@Override
	@WebMethod
	public Factura getFacturaById(int idFactura) {

		return facturaDAO.find(idFactura);
	}

	@Override
	@WebMethod
	public void crearFactura(Date fechaCobro, Date fechaFactura,
			int idAlquiler, int idEmpleado, double importe,
			boolean pendientePago) {

		Factura f = null;

		f = new Factura(fechaCobro, fechaFactura, idAlquiler, idEmpleado,
				importe, pendientePago);
		facturaDAO.create(f);

	}

	@Override
	@WebMethod
	public List<Factura> getFacturasPendientes() {

		Calendar calend=  Calendar.getInstance();
		calend.add(Calendar.DATE,-45); // resto 45 días y obtengo la fecha límite :D
		
		return facturaDAO.getFacturasPendientes(calend.getTime());
	}

	@Override
	@WebMethod
	public void actualizarPendienteFactura(int idFactura, boolean estado) {

		Factura fact = facturaDAO.find(idFactura);
		fact.setPendientePago(estado);
	}

}
